/**
 * 
 */
package design_pattern.memento.whiteboxcheckpoints;

/**
 * @author linzq
 * 
 */
public class Client {

  public static void main(String[] args) {
    Originator o = new Originator();
    CareTaker c = new CareTaker(o);
    // 改变状态
    o.setState("state 0");
    // 建立一个检查点
    c.createMemento();
    // 改变状态
    o.setState("state 1");
    // 建立一个检查点
    c.createMemento();
    // 改变状态
    o.setState("state 2");
    // 建立一个检查点
    c.createMemento();
    // 改变状态
    o.setState("state 3");
    // 建立一个检查点
    c.createMemento();
    // 改变状态
    o.setState("state 4");
    // 建立一个检查点
    c.createMemento();
    // 改变状态
    o.setState("state 5");
    // 建立一个检查点
    c.createMemento();
    c.restoreMemento(2);
    o.printStates();
  }
}
